package khl.ooo.domain;
import khl.ooo.domain.vak.Vak;
import khl.ooo.util.*;

public class Lesmoment implements Cloneable, Comparable<Lesmoment> {
	private String lokaal;
	private TijdsIntervalWeekdag tijdsduur;
	
	public Lesmoment(String lokaal, TijdsIntervalWeekdag lesduur)
	{
		this.setLokaal(lokaal);
		this.setTijdsduur(lesduur);
	}
	
	private void setLokaal(String lokaal){
		this.lokaal=lokaal;
	}
	private void setLesvak(Vak lesvak)
	{
		//Vak lesvak = new Vak(lesvak.getCode(), lesvak.get)
	}
	
	public String getLokaal() {
		return this.lokaal;
	}
	public TijdsIntervalWeekdag getTijdsduur() {
		return this.tijdsduur;
	}
	
	public void setTijdsduur(TijdsIntervalWeekdag tijdsduur) {
		if(tijdsduur != null && tijdsduur instanceof TijdsIntervalWeekdag) {
			this.tijdsduur = tijdsduur;
		} else {
			throw new IllegalArgumentException();
		}
	}
	
	public String toString() {
		String output = "";
		output += this.getLokaal() + " (" + this.tijdsduur.toString() + ")\n";
		return output;
	}

	@Override 
	public int compareTo(Lesmoment les) {//TODO onleesbaar, ik lees het als "dojeit!" ofzoiets
		if(les != null && les instanceof Lesmoment) {
			return this.getTijdsduur().compareTo(les.getTijdsduur());
		} else {
			throw new IllegalArgumentException();
		}
	}
	  public Object clone() {
		    Object o = null;
		    try {
		      o = super.clone();
		    } catch (CloneNotSupportedException e){}
		    return o;
		  }
}